/*
 * TacticaJuan.java
 *
 * Created on 17 de julio de 2006, 15:06
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package futbol.tacticas.concursantes2007.kapsi;

import futbol.tacticas.concursantes.Tactica;

import java.awt.Point;
import java.awt.Color;
import java.util.Vector;


import futbol.tacticas.*;
import futbol.General;
/**
 *
 * @author Administrador
 */
public class TacticaKapsi implements Tactica{
    	
    private Vector<Jug>equipo = new Vector<Jug>(11);
    public Point[] trayectoriaBola = {new Point(0,0),new Point(1,0),new Point(2,0)};  //Modificado por Jorge Rubira. He quitado el static para que esta variable se inicialice cada vez que empiece un partido.
    public int contador;  //Modificado por Jorge Rubira. He quitado el static para que esta variable se inicialice cada vez que empiece un partido.
    public int contadorBola;  //Modificado por Jorge Rubira. He quitado el static para que esta variable se inicialice cada vez que empiece un partido.
    
    public TacticaKapsi(){
    	equipo.add(new Jug(0,5,new Area(-150,0,50),TipoJugador.Portero));
    	equipo.add(new Jug(1,5,new Area(-110,0,50),TipoJugador.Libero));
    	equipo.add(new Jug(2,5,new Area(-100,-50,50),TipoJugador.Defensa));
    	equipo.add(new Jug(3,5,new Area(-100,50,50),TipoJugador.Defensa));
    	equipo.add(new Jug(4,4,new Area(-90,-90,50),TipoJugador.Lateral));
    	equipo.add(new Jug(5,4,new Area(-90,90,50),TipoJugador.Lateral));
    	equipo.add(new Jug(6,7,new Area(-70,0,60),TipoJugador.Centro));
    	equipo.add(new Jug(7,5,new Area(-30,-70,80),TipoJugador.MediaPunta)); // J 8
    	equipo.add(new Jug(8,7,new Area(-50,50,50),TipoJugador.Centro));
    	equipo.add(new Jug(9,7,new Area(50,-10,50),TipoJugador.Delantero));
    	equipo.add(new Jug(10,5,new Area(-10,50,80),TipoJugador.MediaPunta));
    }

    
    public Color getColor1() {
        return Color.red;
    }

    public Color getColor2() {
        return Color.red;
    }

    public Color getColorNumero() {
        return Color.white;
    }

    public String getNombre() {
        return "Real Kapsi";
    }

    public int getXInicial(int n) {
        return equipo.get(n).getXInicial();
    }

    public int getYInicial(int n) {
        return equipo.get(n).getYInicial();
    }

    public int getFuerza(int n) {
        return equipo.get(n).getFuerza();
    }

    public Vector<Comando> getComandos(SituacionJugadores sj) {
    	contador++;
    	trayectoriaBola[contadorBola] = sj.getBola();
    	contadorBola++;
    	if(contadorBola >2){
    		contadorBola=0;
    	}
    	
        Vector<Comando> com=new Vector<Comando>();

        Point[] jugadores = sj.getMisJugadores();
        Point[] contrarios = sj.getContrario();
        
        // Jugadores por Area
        Area area = null;
        
        for(int i=0;i<11;i++){
        	area = equipo.get(i).getArea();
        	area.limpia();
        	for(int n=0;n<11;n++){
            	area.addJugador(n, jugadores[n]);
            	area.addContrario(n, contrarios[n]);
            }
        	area.addBola(sj.getBola());
        }
        
        // comando para cada jugador
        for(int n=0;n<equipo.size();n++){
        	equipo.get(n).getComandos(com,sj);
        }        
        
        return com;
    }
    
}
